[!WINDOWSNT]: Include <fcntl.h> if available.
authorJuanma Barranquero <lekktu@gmail.com>
Tue, 31 Oct 2006 13:50:35 +0000 (13:50 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Tue, 31 Oct 2006 13:50:35 +0000 (13:50 +0000)
(set_tcp_socket): Prefer O_NONBLOCK, then O_NDELAY, then FIONBIO to set the
socket in non-blocking mode.

lib-src/emacsclient.c

index b3a5180653c51cf7af863b70a75d43980879c285..b7f3dd592a70948aa2ead9f7b7313b6b199839cc 100644 (file)
@@ -38,6 +38,9 @@ Boston, MA 02110-1301, USA.  */
 # define INITIALIZE() (initialize_sockets ())
 typedef unsigned long IOCTL_BOOL_ARG;
 #else
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#endif
 # include <netinet/in.h>
 # include <sys/ioctl.h>
 # define INVALID_SOCKET -1
@@ -486,7 +489,15 @@ set_tcp_socket ()
       return INVALID_SOCKET;
     }
 
+#ifdef O_NONBLOCK
+  IOCTL (s, O_NONBLOCK, &c_arg);
+#else
+#ifdef O_NDELAY
+  IOCTL (s, O_NDELAY, &c_arg);
+#else
   IOCTL (s, FIONBIO, &c_arg);
+#endif
+#endif 
   setsockopt (s, SOL_SOCKET, SO_LINGER, (char *) &l_arg, sizeof l_arg);
 
   /*